package originatorV3;

import command.Command;

import mementoV2.CouperMemento;
import mementoV2.Memento;
import mementoV3.CouperMementoV3;
import mementoV3.MementoV3;
import originatorV2.CouperOriginator;
import caretakerV3.GestionDefaire;

public class CouperOriginatorV3 implements OriginatorV3 {


	public CouperOriginatorV3(Command command,
			GestionDefaire gestion) {
		super();
		this._gestion = gestion;
		this._couper = command;
	}

	private GestionDefaire _gestion;
	private Command _couper;

	@Override
	public void execute() {		
		((CouperOriginator)_couper).execute();
		MementoV3 m = new CouperMementoV3(this);
		_gestion.sauvegarder(m);
	}

	@Override
	public void setMemento(MementoV3 m) {
		Memento mem = new CouperMemento((CouperOriginator) _couper);
		((CouperOriginator) _couper).setMemento(mem);
	}

}
